<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>fit_dat</title>
  </head>
  <body bgcolor="#FFFFFF">
    <center>Scilab Function</center>
    <div align="right">Last update : Feb 1998</div>
    <p>
      <b>fit_dat</b> -  Parameter identification based on measured data</p>
    <h3>
      <font color="blue">Calling Sequence</font>
    </h3>
    <dl>
      <dd>
        <tt>[p,err]=fit_dat(G,p0,Z [,W] [,pmin,pmax] [,DG])  </tt>
      </dd>
    </dl>
    <h3>
      <font color="blue">Parameters</font>
    </h3>
    <ul>
      <li>
        <tt>
          <b>G</b>
        </tt>: Scilab function (e=G(p,z), e: nex1, p: npx1, z: nzx1)</li>
      <li>
        <tt>
          <b>p0</b>
        </tt>: initial guess (size npx1)</li>
      <li>
        <tt>
          <b>Z</b>
        </tt>: matrix [z_1,z_2,...z_n] where z_i (nzx1) is the ith measurement</li>
      <li>
        <tt>
          <b>W</b>
        </tt>: weighting matrix of size nexne (optional; default 1)</li>
      <li>
        <tt>
          <b>pmin</b>
        </tt>: lower bound on p (optional; size npx1)</li>
      <li>
        <tt>
          <b>pmax</b>
        </tt>: upper bound on p (optional; size npx1)</li>
      <li>
        <tt>
          <b>DG</b>
        </tt>: partial of G wrt p (optional; S=DG(p,z), S: nexnp)</li>
    </ul>
    <h3>
      <font color="blue">Description</font>
    </h3>
    <p>
      <tt>
        <b>fit_dat</b>
      </tt> is used for fitting data to a model.
    For a given function G(p,z), this function finds the best vector 
    of parameters p for approximating G(p,z_i)=0 for a set of measurement
    vectors z_i. Vector p is found by minimizing
    <tt>
        <b>G(p,z_1)'WG(p,z_1)+G(p,z_2)'WG(p,z_2)+...+G(p,z_n)'WG(p,z_n)</b>
      </tt>
    </p>
    <h3>
      <font color="blue">Examples</font>
    </h3>
    <pre>

deff('y=FF(x)','y=a*(x-b)+c*x.*x')
X=[];Y=[];
a=34;b=12;c=14;for x=0:.1:3, Y=[Y,FF(x)+100*(rand()-.5)];X=[X,x];end
Z=[Y;X];
deff('e=G(p,z)','a=p(1),b=p(2),c=p(3),y=z(1),x=z(2),e=y-FF(x)')
[p,err]=fit_dat(G,[3;5;10],Z)
xset('window',0)
xbasc();
plot2d(X',Y',-1) 
plot2d(X',FF(X)',5,'002')
a=p(1),b=p(2),c=p(3);plot2d(X',FF(X)',12,'002')

a=34;b=12;c=14;
deff('s=DG(p,z)','y=z(1),x=z(2),s=-[x-p(2),-p(1),x*x]')
[p,err]=fit_dat(G,[3;5;10],Z,DG)
xset('window',1)
xbasc();
plot2d(X',Y',-1) 
plot2d(X',FF(X)',5,'002')
a=p(1),b=p(2),c=p(3);plot2d(X',FF(X)',12,'002')
 
  </pre>
    <h3>
      <font color="blue">See Also</font>
    </h3>
    <p>
      <a href="optim.htm">
        <tt>
          <b>optim</b>
        </tt>
      </a>,&nbsp;&nbsp;<a href="datafit.htm">
        <tt>
          <b>datafit</b>
        </tt>
      </a>,&nbsp;&nbsp;</p>
  </body>
</html>
